package bard.partnermatchingsystem.service;


import bard.partnermatchingsystem.domain.po.User;
import bard.partnermatchingsystem.domain.vo.UserVO;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;


/**
* @author Administrator
* @description 用户接口
*/
public interface UserService extends IService<User> {


/**
* @description 用户注册接口
* @return 用户ID
*/
 int UserRegister(String userAccount, String password, String checkPassword, String planetCode);


/**
* @description 用户登录接口
* @return 返回脱敏后的用户信息
*/
 User doLogin(String username, String password, HttpServletRequest request);

 /**
  * @description 用户t退出接口
  * * @return 退出状态
  */
 Integer doLogout(HttpServletRequest request);

/**
* @description 获取当前登录用户
* @return
*/
 User getLoginUser(HttpServletRequest request);


/**
* @description 判断当前用户是否为管理员
* @return
*/
 boolean isAdmin(User loginUser);

 boolean isAdmin(HttpServletRequest request);

 /**
 * @description 更新当前用户信息如果是管理员可以修改任意用户信息
 * @return Int
 */
 int updateUser(User user, User loginUser);
 /**
 * @description 获取用户列表
 * @return
 */
List<User> getTagsUserList(List<String> tagNameList);



User getSafeUser(User user);

 /**
  * @description 为当前用户匹配最佳用户
  * @return
  */
List<UserVO> matchUsers(long num, User loginUser);
}
